﻿using System;
using System.Collections.Generic;
using System.Text;
using System.Web.UI.WebControls;
using ASBCC.Database.Entity;

namespace ASBCC.Workflow.Client
{
    public interface IWorkflowPage
    {
        string GetProcName();
        IAppForm GetAppForm();
        bool IsViewOnly();
        string GetRequestParamKey_AppFormId();
        string GetRequestParamKey_MyActivityId();
        MyActivityTableEntity GetMyActivity();
        IWorkflowController GetWorkflowController();
        IWorkflowActionPanel GetActionPanel();
        IWorkflowControl GetProcessStampControl();
        Dictionary<string, object> GetFormArguments();
        bool IsExcuteAction { get;set;}
        int NewAppFormID { get; }
        bool ExecuteAction(string actionType);
        void ExecuteActionDone(string actionType);
    }

    public interface IWorkflowActionPanel
    {
        bool WorkflowButtonVisible{get;set;}
        Button GetActionButtonAgent();
        Button GetActionButton(string actionType);
        List<Button> GetActionButtonList();
    }

    public interface IWorkflowControl
    {
        void BindData(int appFormId, int procInstId);
    }

    public interface IWrapNetBpmToK2WorkflowPage
    {
        string GetProcName();
        string GetFormUrl();
        IAppForm GetAppForm();
        Dictionary<string, object> GetFormArguments();
        bool ExecuteAction(string actionType);
        void ExecuteActionDone(string actionType);

    }
}
